# 指定文件编码为UTF-8
# coding: utf-8

# 从and_gate模块导入AND函数
from and_gate import AND
# 从or_gate模块导入OR函数
from or_gate import OR
# 从nand_gate模块导入NAND函数
from nand_gate import NAND

# 定义XOR异或门函数
def XOR(x1, x2):
    # 使用NAND门处理输入x1和x2
    s1 = NAND(x1, x2)
    # 使用OR门处理输入x1和x2
    s2 = OR(x1, x2)
    # 使用AND门组合NAND和OR的结果
    y = AND(s1, s2)
    # 返回异或运算结果
    return y

# 主程序入口
if __name__ == '__main__':
    # 测试所有可能的输入组合：(0,0)、(1,0)、(0,1)、(1,1)
    for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
        # 调用XOR函数计算结果
        y = XOR(xs[0], xs[1])
        # 打印输入输出对应关系
        print(str(xs) + " -> " + str(y))
